﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace XMLSpreadGear.Attributes
{
    [global::System.AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = true)]
    public sealed class TemplateAttribute : Attribute
    {
        private double dDefaultColumnWidth = 48.0;

        public double DefaultColumnWidth
        {
            get { return dDefaultColumnWidth; }
            set { dDefaultColumnWidth = value; }
        }
        private double dDefaultRowHeight = 12.5;

        public double DefaultRowHeight
        {
            get { return dDefaultRowHeight; }
            set { dDefaultRowHeight = value; }
        }
        private ulong lExpandedColumnCount;

        public ulong ExpandedColumnCount
        {
            get { return lExpandedColumnCount; }
            set { lExpandedColumnCount = value; }
        }
        private ulong lExpandedRowCount;

        public ulong ExpandedRowCount
        {
            get { return lExpandedRowCount; }
            set { lExpandedRowCount = value; }
        }
        private ulong lLeftCell = 1;

        public ulong LeftCell
        {
            get { return lLeftCell; }
            set { lLeftCell = value; }
        }
        private string sStyleID = "Default";

        public string StyleID
        {
            get { return sStyleID; }
            set { sStyleID = value; }
        }
        private ulong lTopCell = 1;

        public ulong TopCell
        {
            get { return lTopCell; }
            set { lTopCell = value; }
        }
        private bool bFullColumns;

        public bool FullColumns
        {
            get { return bFullColumns; }
            set { bFullColumns = value; }
        }
        private bool bFullRows;

        public bool FullRows
        {
            get { return bFullRows; }
            set { bFullRows = value; }
        }

        // See the attribute guidelines at 
        //  http://go.microsoft.com/fwlink/?LinkId=85236
        

        // This is a positional argument
        public TemplateAttribute(double defaultColumnWidth, double defaultRowHeight,
            ulong expandedColumnCount, ulong expandedRowCount, ulong leftCell,
            string styleID, ulong topCell, bool fullColumns, bool fullRows)
        {

            this.dDefaultColumnWidth = defaultColumnWidth;
            this.dDefaultRowHeight = defaultRowHeight;
            this.lExpandedColumnCount = expandedColumnCount;
            this.lExpandedRowCount = expandedRowCount;
            this.lLeftCell = leftCell;
            this.sStyleID = styleID;
            this.lTopCell = topCell;
            this.bFullColumns = fullColumns;
            this.bFullRows = fullRows;
        }

        
    }
}
